(注:本文转自Git入门教程)

创建新仓库:

git init在当前目录建立本地新仓库

git clone url在当前目录克隆一个远端仓库

添加用户名及邮箱有两种方式

方式一:编辑.git/config

[user]  
	name =  
	email =

方式二:使用命令行

	git config --global user.name "xxxxxx" 
	git config --global user.email "xxxxxxx"
	(备注:--global表示添加到全局配置中,全局配置在~/.gitconfig中, 如果不加--global,就只会修改当前目录下.git/config)

在本地仓库上工作:

你的文件可能存在于不同的层次:

  • 工作目录
  • 暂存区域
  • 本地仓库
  • 工作目录:

    文件可能有三种不同状态:

  • 未被追踪
  • 已追踪未修改
  • 已追踪已修改
  • 暂存区域(包含了在下次将要被提交的修改):

    使用git add/rm <file>将增加/修改/删除的文件暂存

    本地仓库:

    使用git commit -m "message"提交已经暂存的更改

    常用操作:

    git status:显示当前所处分支与修改(包括暂存与未暂存)

    git checkout HEAD -- <file> 使某个文件恢复到上次提交时的状态

    git checkout -- <file> 使某个文件恢复到上次暂存时的状态(Updated Lucups@V2EX

    git reset HEAD <file> 使某个修改由已暂存变为未暂存

    将本地仓库重置成与远端一样:git fetch origin git reset --hard origin/master

    检查提交历史:

    git log:查看以往的提交以及提交时的留言

    git log 1 -p:查看最后一次提交及其改动

    git log --author=<name>:仅显示某人的的提交

    git log --pretty=oneline:一行显示一个提交

    git log --graph --oneline --decorate --all:以树状图显示提交历史

    git log --name-status:仅显示哪些文件被改动

    暂存:

    当你需要建立新分支时,可能需要一个干净的工作目录,但是一时半会儿没法提交时,暂存是你的好选择。

    git stash:暂存当前的暂存区域

    git stash list:列出已有的暂存

    git stash pop:将暂存中的改变重新释放出来

    分支与合并:

    git branch <branchname>来创建新分支

    优点:
    1. 安全:多个特性平行开发,再也不会搞得一塌糊涂
    2. 灵活的共享:只要不主动推送,本地新分支是不会推送至远端的
    3. 切换十分方便
    何时创建新分支:

    新的特性需要开发,有Bug需要修补,不同思路做实验。。。

    HEAD:

    Git中只有一个分支是活跃的也就是HEAD所指向的那个。

    使用git checkout <branch>来切换分支,HEAD也随之改变

    git branch -v:列出所有分支以及当前活跃的分支

    合并:

    git merge <branchname>:将某分支合并到当前分支

    git branch -d <branchname>:删除某分支

    远端仓库:

    git push origin <branch>:推送本地分支

    git fetch <branch>:获取远端分支但不进行合并

    合并前可以通过git diff <source_branch> <target_branch>检查更改

    git pull:获取远端分支并尝试合并

    增加远端仓库:

    git remote add shortname <url>

    同步远端的分支list

    (例如某分支在远端被删除了)
    git fetch -p
    or
    git remote prune origin

    打标签:

    发布新版本时,打标签是个不错的选择:git tag <tagname> <hash>

    GIT PUSH/PULL时总需要输入用户名密码的解决方案

    git操作时只要输入一次用户名与密码,以后就不用输入了
    在 mac系统
    git config --global credential.helper osxkeychain
    在其他系统
    git config --global credential.helper store

    小提示:

    gitk:内置的图形界面

    git config color.ui true:使命令行输出变成彩色

    git add -i:不用一个个输入需要暂存的文件的文件名,进行交互式选择

    客户端与拓展阅读:

    客户端:

    Tower(Mac)

    GitHub(Windows&Mac)

    SourceTree(Windows&Mac)

    拓展阅读:

    图解Git

    Pro Git 中文第一版 英文第二版

    Think Like (a) Git